package com.rp.system.user.mapper;

import com.rp.system.user.entity.SysPermission;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.rp.system.user.entity.SysRole;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;

/**
 * <p>
 * 菜单权限表 mapper 接口
 * </p>
 *
 * @author vicente
 * @since 2020-11-24
 */
@Mapper
@Component
public interface SysPermissionMapper extends BaseMapper<SysPermission> {

    /**
     * @Author HuJingYu
     * @Date 15:46 2020-12-22
     * @Description 根据角色列表查询权限
     * @param roles 角色列表
     * @param menu_type true表示值查询权限页面   false表示查询所有权限(带按钮权限)
     * @return java.util.LinkedHashSet<SysPermission>
     */
    LinkedHashSet<SysPermission> findPermissionsByRoleId(@Param("roles") Set<SysRole> roles, @Param("menu_type") Boolean menu_type);

    /**
     * @Author HuJingYu
     * @Date 16:07 2021-03-08
     * @Description 根据部门编码查询对应 部门权限
     * @param orgCode
     * @return java.util.LinkedHashSet<com.rp.system.user.entity.SysPermission>
     */
    LinkedHashSet<SysPermission> getPermissionByDepartOrgCode(@Param("orgCode") String orgCode);

    LinkedHashSet<SysPermission> getPermissionByDepartParentId(@Param("parentId") String parentId);

    /**
     * @Author HuJingYu
     * @Date 18:04 2021-03-09
     * @Description 根据权限ID 查询权限perms
     * @param roleIdList
     * @return java.util.List<java.lang.String>
     */
    List<String> getPermissionPermsByRoleIds(@Param("roleIdList") List<String> roleIdList);
}
